{%extend name="Public:layout"/%}
{%block name="title"%}    
    <h2 class="mb20">角色管理</h2>
{%/block%}
    
{%block name="contents"%}       
    <div class="heading clearfix">
      <div class="pull-right">
        <a title="添加角色" href="javascript:;" onclick="ST.todo('add','0')" class="btn mr5"><i class="icon i-add"></i> 添加角色</a>
      </div>
    </div>
    <table class="table table-listing table-hovered">
      <thead class="thead-gray">
      <tr>
        <th width="100">编号</th>
        <th width="250">角色名</th>
        <th>所有权限</th>
        <th width="250">管理</th>
      </tr>
      </thead>
      <tbody>
    {%notempty name="list"%}
      {%foreach name="list" item="vo" %}
      <tr>
        <td>{%$vo.id%}</td>
        <td>
          {%$vo.name%}
        </td>
        <td>
          {%$vo.atomName%}
        </td>
        <td>
          <a href="javascript:;" title="权限编辑" onclick="ST.todo('popDataSelect','{%$vo.id%}')"><i class="icon i-reject"></i></a>
          <a href="javascript:;" title="编辑角色" onclick="ST.todo('edit','{%$vo.id%}')"><i class="icon i-edit"></i></a>
          <a href="javascript:;" title="删除角色" onclick="ST.todo('del','{%$vo.id%}')"><i class="icon i-del"></i></a>
          <input id="data_value_{%$vo.id%}" type="hidden" value="{%$vo.atom_list%}"/>
        </td>
      </tr>      
    {%/foreach%}
   {%/notempty%}
      </tbody>
    </table>
    <h2 class="m20"></h2>
    <div class="paging">{%$page%}</div>
{%/block%}

{%block name="js"%}
<script src="__JAVASCRIPT__/ST.DataSelect.js" charset="utf-8"></script>
<script>
    $.extend(ST.ACTION, {
        'del': "{%:U('/admin/admin/delrole')%}",//删除目录action地址
        'add': "{%:U('/admin/admin/saverole')%}",//添加目录弹窗地址
        'edit': "{%:U('/admin/admin/saverole')%}",//编辑目录弹窗地址
        'save_atom': "{%:U('/admin/admin/saverole')%}",
        'loadSub': "{%:U('/admin/admin/ajaxgetatomsub')%}"//读取子选项地址
    });
    $.extend(ST, {
        todoList: function () {

        },
        /**
         * 弹出添加窗口
         * @param id      数据id
         */
        add: function (id) {
            ST.editBox(ST.ACTION.add + '/id/' + id, {
                title: '添加角色',
                height: 500
            });
        },
        /**
         * 弹出编辑窗口
         * @param id      数据id
         */
        edit: function (id) {
            ST.editBox(ST.ACTION.edit + '/id/' + id, {
                title: '编辑角色',
                height: 500
            });
        },
        /**
         * 存储角色权限
         * @param id      数据id atomId
         */
        save_atom: function (id, atomId) {
            ST.execAJAX({
                url: ST.ACTION.save_atom,     //服务端请求地址
                params: {id: id, atomId: atomId},       //发送到服务端的参数（如：{myparam:1}）
                massage: '确定修改吗？',       //提示信息（仅hasconfirm为true时有用）
                hasconfirm: true,       //提交前是否显示确认框
                succFun: function (j) {  //成功后的回调方法：刷新页面
                    if (!j) return;
                    if (j.data && j.data.url) {
                        location.href = j.data.url;
                    } else {
                        ST.reload();
                    }
                }
            });
        },
        /**
         * 执行AJAX删除操作后刷新页面
         * @param id      数据id
         */
        del: function (id) {
            ST.execAJAX({
                url: ST.ACTION.del,     //服务端请求地址
                params: {id: id},       //发送到服务端的参数（如：{myparam:1}）
                massage: '确定删除吗？',       //提示信息（仅hasconfirm为true时有用）
                hasconfirm: true,       //提交前是否显示确认框
                succFun: function (j) {  //成功后的回调方法：刷新页面
                    if (!j) return;
                    if (j.data && j.data.url) {
                        location.href = j.data.url;
                    } else {
                        ST.reload();
                    }
                }
            });
            //更多选项参见common.js execAJAX方法
        },
        //批量删除
        delAll: function (ids) {
            var ids = ST.getSelectedValue().join(',');
            if (!ids) {
                ST.tipMsg('请至少选择一项');
            } else {
                ST.del(ids);
            }
        },
        //获得选中值
        getSelectedValue: function () {
            var $options = $('.js-toggleall-target:checked'), arr = [];
            $options.each(function () {
                arr.push($(this).val());
            });
            return arr;
        }
    });
    //定义按钮click方法
    ST.popDataSelect = function (id) {
    //获取已选值
        var $valIpt = $('#data_value_' + id), vals = $valIpt.val();
        vals = vals ? vals.split(',') : [];
    //定义DataSelect插件集合
        if (!ST.$dataselect) ST.$dataselect = {};
    //创建并显示一个msgbox
        var uid = $.getUid();
        ST.msgbox({
            title: '数据选择',
            content: '<div id="' + uid + '"></div>'
        }, [
            {text: '确定', fun: function (a, e) {
                //确定时填入选中值
                var ids = ST.$dataselect[uid].getSelectedSet('id');
                $valIpt.val(ids.join(','));
                ST.todo('save_atom', id, ids.join(','));
            }},
            {text: '取消', fun: ''}
        ], 850, 500, true);

    //初始化DataSelect插件
        setTimeout(function () {
            ST.$dataselect[uid] = new ST.DataSelect(uid, {
                url: "{%:U('/admin/admin/rolejsonlist')%}?jid=" + id,
                size: 'dataSelect-large',
                selected: vals,
                enableMulti: true,
                template: 'buss_dataselect',
                template_datalist: 'buss_dataselect_datalist',
                template_selected: 'buss_dataselect_selected',
                enableSearch: true,
                enablePager: true
            });
            ST.$dataselect[uid].onLoad = function (d, cp) {
                var $isInited = $('#' + uid + '_isInited');
                if (!$isInited.val()) {
                    var $c = $('#' + uid + '_st_dataselect_searchIpt1');
                    var data = d.menuM || [], text, value;
                    for (var i = 0, l = data.length; i < l; i++) {
                        text = data[i].name;
                        value = data[i].class_id;
                        $c.append('<option value="' + value + '">' + text + '</option>');
                    }
                    setTimeout(function () {
                        ST.render(uid);
                        $isInited.val('1');
                    }, 50);
                }
            }
        }, 50);
    }
    ST.init();
</script>       
{%/block%}